有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JDBC未将根用户传递给DriverManager。获取连接

这是我的密码:

import java.sql.*;
import com.mysql.jdbc.Statement;

public class Test {
    public static void main(String[] args) throws SQLException{


    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        System.out.println("Something happened badly");
        e.printStackTrace();
    }
        final String DB_URL = "jdbc:mysql://localhost/";
        final String USER = "root";
        final String PASSWORD = "XXXXX";
        Connection conn = DriverManager.getConnection(DB_URL,USER,PASSWORD);    
        //String db = "CREATE DATABASE TEST1";
        String use_db = "USE football_manager";
        Statement stmt;


        String createTable = "CREATE TABLE coffees "
            + "(COF_NAME VARCHAR(30),"
            + "SUPPLIER VARCHAR(30),"
            + "PRICE FLOAT,"
            + "STOCK INTEGER)";


        try {
            conn = DriverManager.getConnection(DB_URL);

            //stmt = (Statement) conn.createStatement();
           // stmt.executeUpdate(db);

            stmt = (Statement) conn.createStatement();
            stmt.executeUpdate(use_db);

            stmt = (Statement) conn.createStatement();
            stmt.executeUpdate(createTable);

            stmt.close();
            conn.close();

        } catch(SQLException ex) {
            System.err.println("SQLException: " + ex.getMessage());
        }                       
    }
}

以下是我在控制台中不断收到的信息:

SQLException: Access denied for user ''@'localhost' to database

正如您所看到的,用户名一直为空。我正在使用Eclipse Luna。当我使用Eclipse开普勒时,它工作得很好


共 (1) 个答案

  1. # 1 楼答案

    你的问题是:

    conn = DriverManager.getConnection(DB_URL);
    

    您正在获取第二个连接对象,但未发送用户凭据。我不确定您为什么想要/需要打开第二个连接,请使用第一个连接